#include "Multigrid/MGFactory.h"
#include "Multigrid/TestMultigrid.h"

using namespace std;
using iVec = Vec<int,2>;
using rVec = Vec<Real,2>;

template <class T>
using Vector = std::vector<T>;

int main(int argc, char* argv[]){
  string name = argv[1];
  string file = "../../test/"+name+".json";
  const int num = 3;
  cout << "--------------------------- Test function F = \\exp(x*y) ---------------------------" << endl;
  D2Func2 f2;
  cout << "----------------Injection+LinearInterpolation----------------" << endl;
  MGFactory<2,Injection<2>,LinearInterpolation<2>> MGF(file);
  TestMultigrid<2,Injection<2>,LinearInterpolation<2>> TM(MGF);
  TM.TestVCycleCPUTimes(f2,num);
}
